a tool for shared writing and social publishing
1import { z } from "zod";
2import { makeRoute } from "../lib";
3import type { Env } from "./route";
4import { NextApiResponse } from "next";
5
6export const get_domain_status = makeRoute({
7 route: "get_domain_status",
8 input: z.object({
9 domain: z.string(),
10 }),
11 handler: async ({ domain }, { vercel }: Pick<Env, "vercel">) => {
12 try {
13 let [status, config] = await Promise.all([
14 vercel.domains.getDomain({
15 domain,
16 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d",
17 }),
18 vercel.domains.getDomainConfig({
19 domain,
20 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d",
21 }),
22 ]);
23 return { config };
24 } catch (e) {
25 let errorResponse = e as NextApiResponse;
26 if (errorResponse.statusCode === 403) {
27 try {
28 let [verification, config] = await Promise.all([
29 vercel.projects.getProjectDomain({
30 idOrName: "prj_9jX4tmYCISnm176frFxk07fF74kG",
31 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d",
32 domain,
33 }),
34 vercel.domains.getDomainConfig({
35 domain,
36 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d",
37 }),
38 ]);
39 if (!verification.verification) {
40 return { config };
41 }
42 return {
43 verification: verification.verification,
44 config,
45 } as const;
46 } catch (e) {
47 return { error: true };
48 }
49 }
50 if (errorResponse.statusCode === 404)
51 return { error: "Not Found" } as const;
52 return { error: true };
53 }
54 },
55});
56
57export const get_leaflet_subdomain_status = makeRoute({
58 route: "get_leaflet_subdomain_status",
59 input: z.object({
60 domain: z.string(),
61 }),
62 handler: async ({ domain }, { vercel }: Pick<Env, "vercel">) => {
63 try {
64 let c = await vercel.projects.getProjectDomain({
65 idOrName: "prj_9jX4tmYCISnm176frFxk07fF74kG",
66 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d",
67 domain: `${domain}.leaflet.pub`,
68 });
69 return { config: c };
70 } catch (e) {
71 console.log(e);
72 let errorResponse = e as NextApiResponse;
73 if (errorResponse.statusCode === 404)
74 return { error: "Not Found" } as const;
75 return { error: true };
76 }
77 },
78});